package org.dxy.infrastructure.persistent.db.mybatispuls.po.query;

import com.baomidou.mybatisplus.annotation.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;

/**
 * MBOM视图实体（用于查询和展示）
 * @author dxy
 * @createTime 2025/9/10
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@TableName("mbom_view")
public class MBOMViewPo {
    
    /** MBOM ID */
    @TableId(type = IdType.INPUT)
    private Long id;
    
    /** MBOM编码 */
    private String mbomCode;
    
    /** MBOM名称 */
    private String mbomName;
    
    /** 产品ID */
    private Long productId;
    
    /** 产品名称 */
    private String productName;
    
    /** 版本号 */
    private String version;
    
    /** 状态：DRAFT-草稿，REVIEWING-审核中，APPROVED-已审核，RELEASED-已发布，OBSOLETED-已作废 */
    private String status;
    
    /** 描述 */
    private String description;
    
    /** EBOM ID（如果从EBOM同步而来） */
    private Long ebomId;
    
    /** EBOM版本 */
    private String ebomVersion;
    
    /** 审核人ID */
    private Long reviewerId;
    
    /** 审核人姓名 */
    private String reviewerName;
    
    /** 提交审核时间 */
    private LocalDateTime submitTime;
    
    /** 审核时间 */
    private LocalDateTime reviewTime;
    
    /** 发布时间 */
    private LocalDateTime releaseTime;
    
    /** 作废时间 */
    private LocalDateTime obsoleteTime;
    
    /** 创建人 */
    @TableField(fill = FieldFill.INSERT)
    private String createdBy;
    
    /** 创建时间 */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createdTime;
    
    /** 更新人 */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updatedBy;
    
    /** 更新时间 */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updatedTime;
    
    /** 逻辑删除标识 0-未删除 1-已删除 */
    @TableLogic
    private Integer deleted;
}